package _01_ArrayBasic;

/**
 * 什么是数组?
 * 数组可以看做相同数据类型的数据的一个存储容器,可以对这些数据进行统一管理
 * <p>
 * 在java中数组是一个源自底层的数据结构,同时也为了操作数组定义了一个java.util.Arrays类
 * 其实不仅仅是在java中,在任何语言中,数组都是最基本的数据结构
 * 它是一个用于存储连续的内存空间的集合,并且每个内存空间都有一个独一无二的编号
 * 与之相对应的不连续的空间 : 叫链表
 * <p>
 * 数组保存数据的特性 :
 * 1.是一种引用数据类型
 * 2.是一种连续的线性的数据结构
 * 3.是一个数据的容器,用来存储其他数据
 * 数组中可以存储任意元素的,但是每一维的数据类型必须一致
 * 4.数组的长度不能直接改变,也就是说数组一旦确定,里面的元素个数不能改变
 * 每个数组中都有一个默认的length属性,保存数组的长度(元素个数)
 * 如果想要更改数组的长度,需要新创建一个数组,然后把原数组中内容依次复制过去,在复制过程中可以进行删除和添加
 * <p>
 * <p>
 * 数组声明:
 * 1.静态声明
 * 在知道数组中每个元素的情况下,使用静态声明
 * 数据类型[] 变量名 = {数组元素};
 * int i = 5;
 * int[] is = {1,2,3,4,5}
 * int[][] iss = { {1,2},{2,3},{3,4} };
 * int[][][] isss = {{{1,1,1},{2},{3}},{},{}}
 * <p>
 * 2.动态声明
 * 就是预先不知道要保存的数据是什么值,但是我们需要先把空间划分好
 * 需要使用动态声明,并且会使用对应的默认值去占位
 * 整数 0
 * 小数 0.0
 * 布尔 false
 * 字符 \u0000
 * 引用 null
 * <p>
 * 语法结构 :
 * 数据类型[] 变量名 = new 数据类型[长度];
 * // 创建一个 int一维数组,有10个元素,默认值为0
 * int[] is = new int[10];
 * <p>
 * 数组下标 从0开始
 *
 * @author lenovo
 * @Date 2020年6月30日
 * @Time 下午6:27:10
 */
public class Array_01 {

    public static void main(String[] args) {

        // 静态声明
        int[] arr1 = {1, 2, 3};
        byte[] arr2 = {2, 2, 3};
        boolean[] arr3 = {false, false, false};
        char[] arrr = {'a', '2', 'c'};
        System.out.println(arr1.length);
        // []也可以放在变量名后,但是不建议这样写
        int arr5[] = {1, 2, 2, 1};
        int i = 5;
        int[] is = {1, 2, 3, 4, 54};
        int[][] iss = {{1, 2, 3}, {2, 3}, {5, 4, 3}};
        int[][][] isss = {{{1, 2, 3}, {2}}, {}, {}};
        // 动态声明
        int[] arr4 = new int[10];


    }

}
